package com.gzc.just.play.last.war.centralserver.repository;

import com.gzc.just.play.last.war.centralserver.model.Player;
import org.springframework.data.jpa.repository.JpaRepository;
import org.springframework.data.jpa.repository.Query;
import org.springframework.data.repository.query.Param;
import org.springframework.stereotype.Repository;

import java.util.Optional;

/**
 * 中央服务器的玩家数据访问接口
 */
@Repository
public interface CentralPlayerRepository extends JpaRepository<Player, Long> {

    /**
     * 根据用户名查询玩家
     */
    Optional<Player> findByUsername(String username);

    /**
     * 根据邮箱查询玩家
     */
    Optional<Player> findByEmail(String email);

    /**
     * 根据用户名判断玩家是否存在
     */
    @Query("SELECT COUNT(p) > 0 FROM CentralPlayer p WHERE p.username = :username")
    boolean existsByUsername(@Param("username") String username);

    /**
     * 根据邮箱判断玩家是否存在
     */
    @Query("SELECT COUNT(p) > 0 FROM CentralPlayer p WHERE p.email = :email")
    boolean existsByEmail(@Param("email") String email);

    /**
     * 根据用户名和密码查询玩家
     */
    Optional<Player> findByUsernameAndPassword(String username, String password);
}
